﻿using System;

namespace Kyoh.Lib.Win32API
{
    /// <summary>開いたプロセスの許可されるアクセスのタイプを指定します。</summary>
    [CLSCompliant(false)]
    public enum DesiredAccess : uint
    {
        /// <summary>プロセスの仮想メモリへの変更許可。</summary>
        VirtualMemoryOperation = 0x0008,
        /// <summary>プロセスの仮想メモリの読み取り許可。</summary>
        VirtualMemoryRead = 0x0010,
        /// <summary>プロセスの仮想メモリへの書き込み許可。</summary>
        VirtualMemoryWrite = 0x0020,
        /// <summary>プロセスの仮想メモリへの変更・読み取り・書き込み許可。</summary>
        VirtualMemoryOperationReadWrite = VirtualMemoryOperation | VirtualMemoryRead | VirtualMemoryWrite,
        /// <summary>すべてのアクセス許可。</summary>
        AllAccess = 0x1F0FFF,
        /// <summary>新規スレッドの作成許可。</summary>
        CreateThread = 0x0080,
        /// <summary>ハンドルの複製許可。</summary>
        DupHandle = 0x0040,
        /// <summary>プロセスオブジェクトからの情報読み取り許可。</summary>
        QueryInformation = 0x0400,
        /// <summary>メモリの上限（クォータ）設定許可。</summary>
        SetQuota = 0x0100,
        /// <summary>プロセスの優先順位クラス設定許可。</summary>
        SetInformation = 0x0200,
        /// <summary>プロセスの終了許可。</summary>
        Terminate = 0x0001,
        /// <summary>プロセスの中止/再開許可。</summary>
        SupendResume = 0x0800,
    }
}
